%The Ringer system provides a completely distributed service which is both a wide area read-write filesystem and content index.
%Ringer fills the gap between traditional distributed filesystems which lack effective search (naming) mechanisms and the Internet which, except in specialized environments like wikis, is an extremely difficult medium for users to generate collaborative content. 
%Furthermore, because it does not rely on content itself linking to other content, Ringer is able to effectively index and rank data in far more general formats than HTML.

%Ringer works by separating nodes into two classes. Client nodes host files and transfer data directly between each other in a peer-to-peer manor. 
%All metadata and search operations are sent to an overlay graph of specialized metadata nodes. 
%These metadata nodes currently support two types of search: a tagging based distributed index and a completely automated similarity hash search. 

%On a systems level, I'm using the FUSE framework in Linux for the filesystem parts and the thrift (http://incubator.apache.org/thrift/) framework for RPC.

%There is a problem. %% I don't like this as a first sentence. It is ambiguous and not confident (you CLAIM there is a problem?
%Desirable information exists which is both inaccessible and unduplicated.
%The existing frameworks of centralized and decentralized networked file systems (and web-servers and web-crawlers for that matter) do not adequately support the search aspects required. %% What specialized type of data? Desirable data? You have not specified. This makes no sense!
%Furthermore, ranking algorithms like PageRank fail when there is no existing connectivity graph to compute the relative worth of results.

%As a solution, we present the Ringer system. Ringer combines elements of distributed indexing with a fully functional and highly scalable read-write file system, designed to function on a global scale.
%Ringer is a hybrid peer-to-peer system in which nodes transfer data directly between one another, but all metadata operations are handled by an overlay graph of specialized servers.


%Why not just use Apache and Google? My response is that Google has a hard time indexing and sorting arbitrary data which is not hypertext and a filesystem interface (supporting reads and writes) makes it a lot easier for users to collaborate.)

This project describes an attempt to bridge the divide between immutable web-based content and traditional read-write distributed filesystems.
The system we have developed (dubbed Ringer) provides a completely distributed service which comprises both a wide area read-write filesystem and a searchable content index.
 
%Ringer fills the gap between distributed filesystems, which lack effective non-centralized search mechanisms, and 

Ringer fills the gap between distributed filesystems and the Internet. 
The Internet, except in specialized environments like wikis, is an extremely difficult medium for users to generate collaborative content. 
Almost all files are immutable except to their owners, and when multiple authors are allowed it is up to the application (Mediawiki, Google Docs for example) to support this.
Current distributed filesystems either do not scale, or make trade-offs between distributed search and file mutability.
Ringer facilitates mutability of files at a filesystem level, freeing applications running above Ringer to focus on their core tasks.
Since there is no reliance on content referencing other content, Ringer is able to effectively index and rank data in more general formats than pure HTML.

Ringer works by separating nodes into two classes. 
Client nodes host files and transfer data directly between each other in a peer-to-peer manor. 
All metadata and search operations are sent to an overlay graph of specialized metadata nodes.
Access and concurrency control is maintained via these metadata nodes.
The metadata nodes are arranged into an arbitrary graph, which can be constructed so that no single node, or small group of nodes, is a choke point. 
Metadata nodes support two types of search: a tagging-based distributed index and a completely automated similarity hash search. 

%We briefly present a few micro-benchmarks, followed by initial performance results from running Ringer on a large network.

%paper #235